A machine tool generally refers to a tool that is controlled by servo motors to move in a linear or rotational manner based on several coordinates such as the standard x-axis, y-axis and z-axis coordinates. Various types of machine tools, such as mills, lathes, drills, grinders, welding machines and routers that were once operated by a trained engineer have, in many cases, been replaced by a machine tool that has been coupled to a dedicated computer numerical controller (CNC). A CNC provides specific instructions to the machine tool components enabling them to complete a specific process such as drilling a hole in a piece of metal stock at a particular x-axis, y-axis and z-axis coordinate. This type of CNC controlled machine tool is generally referred to as a CNC machine. CNC machines provide many benefits in industrial applications as they can be used continuously 24 hours a day, 365 days a year and only need to be switched off for occasional maintenance. Additionally, once a CNC machine is programmed to make a particular part, it can then manufacture hundreds or even thousands of the same part and each manufactured product will be exactly the same.
CNCs range in capability from providing simple point-to-point linear control to providing multiple axis control using highly complex algorithms. A CNC machine will typically have an interface for use by an operator that provides a standard set of commands that can be selected by the operator, and that additionally allows the operator to enter modifying data such as work, tool and geometric offsets. When a tool offset is required, for example due to wear on the tool surface, the operator typically enters offset adjustments into the CNC and then visually verifies that the tool is in the correct position by looking at the tool. This process of offsetting the tool is rather cumbersome and often requires multiple attempts to properly align the tool.
A CNC machine typically operates based upon a text-based program file or “part program” (also referred to as a “tool path program” that follows the RS274D standard (also known as ISO 6983). Such a part program typically includes a list of instructions (each instruction line being considered a block) identified as G-codes and M-codes along with various associated parameters in ASCII format. M-codes refer to the standard machine codes that are normally used to represent instructions such as spindle on, tool change, coolant off, etc., whereas a line of G-code can instruct a machine tool to do one of several things such as component movements, drilling, etc.
When a CNC is connected to a particular machine tool, the part program(s) provided (typically pre-installed) on the CNC is further programmed to suit the particular machine tool. This custom programming can be done by way of any of several types of programming languages depending on the type of CNC being used. The programming language(s) serve to translate the part program into machine tool actions. Additionally, a CNC machine will typically have an operator interface such as a touch activated display screen. The interface will have various standard and customizable screens with various command and data entry buttons that can be accessed by touching the screen.
Each CNC is dedicated to operate a single machine tool. If an operator desires to machine a part requiring several operations (processes) by separate machine tools, a series of CNC machines need to be combined, thereby creating a “cell” of multiple CNC machines, each of which has its own respective dedicated CNC. Additionally, if an operator desires to run the same process on multiple machine tools, the operator loads the desired part program into each CNC machine and then starts and operates each CNC machine separately. If the operator desires to make changes to a part program and then execute the program, the CNC machine is first stopped, then the new program file is loaded into memory, and finally the machine is re-started. In the case of multiple machines running the same processes, the part program is loaded into each CNC machine.